package outputstream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*
FileOutStream类：
    构造方法：
       FileOutputStream(String name)
          name：传入一个文件路径
          1.如果传入的文件路径在硬盘中不存在，那么该构造方法会抛出  java.io.FileNotFoundException
          2.如果传入的文件路径在硬盘上存在而且该路径下没有该文件，那么该构造方法会为我们创建一个空白文件
          3.如果传入的文件路径在硬盘上存在而且该路径下已有该文件，那么该构造方法会清空该文件内容

          创建一个向具有指定名称的文件中写入数据的输出文件流。

    成员方法：
       void write(int b)
          将指定字节写入此文件输出流。
       void close()
          关闭此文件输出流并释放与此流有关的所有系统资源。

    通过FileOutputStream向文件中写内容的步骤：
      1.通过输出流关联一个文件1.txt
      2.通过write方法向1.txt中写字节
      3.关流释放资源
      4.写动作一定是在close之前，因为close关流之后，底层的IO资源已经释放，无法再使用
 */
public class FileOutStream01 {
    public static void main(String[] args) throws IOException{
        //method01();
        //method02();
        //method03();
        FileOutputStream fos = new FileOutputStream("Day23/1.txt");

        fos.close();
        fos.write(49);// java.io.IOException: Stream Closed
        fos.write(48);
        fos.write(48);



    }

    private static void method03() throws IOException {
        //写入内容100
        FileOutputStream fos = new FileOutputStream("Day23/1.txt");

        fos.write(49);
        fos.write(48);
        fos.write(48);

        fos.close();
    }

    private static void method02() throws IOException {
        FileOutputStream fos = new FileOutputStream("Day23/1.txt");

        fos.write(97);
        fos.write(65);
        fos.write(98);

        fos.close();
    }

    private static void method01() throws IOException {
        //FileOutputStream fos = new FileOutputStream("Day23/1.txt");
        //FileOutputStream fos = new FileOutputStream("M:Day23/1.txt");//java.io.FileNotFoundException: M:Day23\1.txt (系统找不到指定的路径。)
        FileOutputStream fos = new FileOutputStream("Day23/1.txt");

        fos.write(97);

        fos.close();
    }
}
